/**
 * API响应类
 */
export default class BrowserIllustPagesResponse {
    /**
     * 是否出错
     * @type {boolean}
     */
    error;

    /**
     * 消息内容
     * @type {string}
     */
    message;

    /**
     * 响应主体数据
     * @type {ImageItem[]}
     */
    body;

    constructor(data) {
        this.error = data.error;
        this.message = data.message;
        this.body = data.body.map(item => new ImageItem(item));
    }
}

/**
 * 图片URL集合类
 */
class ImageUrls {
    /**
     * 缩略图URL（128x128）
     * @type {string}
     */
    thumb_mini;

    /**
     * 小尺寸图片URL（540x540）
     * @type {string}
     */
    small;

    /**
     * 常规尺寸图片URL
     * @type {string}
     */
    regular;

    /**
     * 原始尺寸图片URL
     * @type {string}
     */
    original;

    constructor(data) {
        this.thumb_mini = data.thumb_mini;
        this.small = data.small;
        this.regular = data.regular;
        this.original = data.original;
    }
}

/**
 * 图片项类
 */
class ImageItem {
    /**
     * 图片URL集合
     * @type {ImageUrls}
     */
    urls;

    /**
     * 图片宽度（像素）
     * @type {number}
     */
    width;

    /**
     * 图片高度（像素）
     * @type {number}
     */
    height;

    constructor(data) {
        this.urls = new ImageUrls(data.urls);
        this.width = data.width;
        this.height = data.height;
    }
}
